#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#define _PATH_ ./fork
int main()
{
//	FILE*fp =fopen("_PATH_",w+);
//	if(fp==NULL)
//	{
//		perror(fopen);			
//	
//	}
	write(STDOUT_FILENO,"hello world",11);
	printf("\nprintf:before child!\n");
	//sleep(2);
	pid_t id=vfork();
//	char *p="hello world";
//	write(fp,p,strlen(p);
	int i=0;
	printf("printf:before child!\n");//为什么输出两次?
	if(id<0)
	{
		perror("fork");
		exit(1);
	}
	else if(id==0)
	{
		sleep(2);
//		printf("printf:in child!\n");
		printf("child:\n");
		exit(1);
	}
	else
	{	
		sleep(3);
//		printf("printf:in praent!\n");
		printf("praent\n");
	}
}
